<?php

require_once('../app/models/User.php');
require_once('../eai/eai.class.php');
require_once('library.inc.php');

if (isset($_POST['operation'])) {
    //==================================================================================================
    // Lorsque le super administration selectionne un client cela cherche les modèles EAI associés
    if (strcmp($_POST['operation'], "ajax_refresh_client_eai_template") == 0) {
        $PARAM_id_client_account = lib_check_param_post($_POST['id_client_account']);

        $obj_EAI = $_SESSION['eai'];
        $data = $obj_EAI->get_list_template_client($PARAM_id_client_account);

        $obj_User = $_SESSION['user'];
        $db_name = $obj_User->obj_Account->get_db_name($PARAM_id_client_account);

        $tab_arg_1 = array(':id_status' => $obj_EAI::EAI_STATUS_VALID_USER_FINAL);
        $data_2 = db_request_select($REQUEST_138, $tab_arg_1, $db_name);

        header("Content-Type: text/xml");
        echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";
        echo "<root>";

        for ($inc = 0, $stop = (count($data) - 1); $inc < $stop; $inc++) {
            echo "<eai_template value=\"" . $data[$inc][0] . "\" name=\"" . $data[$inc][1] . "\"/>";
        }
        echo "<id_client_account value=\"" . $PARAM_id_client_account . "\" />";
        for ($inc = 0, $stop = (count($data_2) - 1); $inc < $stop; $inc++) {
            echo "<eai_user value=\"" . $data_2[$inc][0] . "\" name=\"" . $data_2[$inc][2] . " - " . $data_2[$inc][1] . " - " . $data_2[$inc][3] . " - " . $data_2[$inc][4] . "\"/>";
        }
        echo "</root>";
    }
    //==================================================================================================
    // Lorsque le super administration selectionne un client cela cherche les modèles EAI associés
    elseif (strcmp($_POST['operation'], "ajax_refresh_manager_campaign") == 0) {
        $id_campaign = lib_check_param_post($_POST['id_campaign']);
        $id_manager = lib_check_param_post($_POST['id_manager']);

        $obj_EAI = $_SESSION['eai'];

        header('Content-Type: text/plain; charset=iso-8859-1'); // On précise bien qu'il s'agit d'une page en ISO 8859-1
        echo $obj_EAI->show_dashboard_campaign($id_campaign, $id_manager);
    }
    //==================================================================================================
    // Lors d'un demande de mise à jour du graphique radar des compétences dans les tableaux de bord EAI
    elseif (strcmp($_POST['operation'], "ajax_refresh_graph_competences") == 0) {
        $tab_node = array();
        $tab_manager = array();
        $tab_year = array();

        $tab_annee = array();

        $tab_data = array();

        $name_img = NULL;
        $inc0 = 0;
        $obj_EAI = $_SESSION['eai'];
        $obj_User = $_SESSION['user'];
        $type_profil = (int) lib_check_param_post($_POST['type_profil']);
        if ($type_profil != 3) {
            array_push($tab_manager, $obj_User->get_id_user());
        }

        // ATTENTION donc on ne peut pas avoir plus de 25 noeud ou manager
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['node_' . $type_profil . "_" . $inc]))
                array_push($tab_node, $_POST['node_' . $type_profil . "_" . $inc]);
            if (isset($_POST['manager_' . $type_profil . "_" . $inc]))
                array_push($tab_manager, $_POST['manager_' . $type_profil . "_" . $inc]);
            if (isset($_POST['year_' . $type_profil . "_" . $inc]))
                array_push($tab_year, $_POST['year_' . $type_profil . "_" . $inc]);
        }
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['year_' . $type_profil . "_" . $inc])) {
                $tab_annee = $obj_EAI->get_stat_competence(lib_check_param_post($_POST['year_' . $type_profil . "_" . $inc]), $type_profil, $tab_node, $tab_manager);

                if ($tab_annee != NULL && $tab_annee[0][0] != NULL) {
                    $tab_data[$inc0] = $tab_annee;
                    $inc0++;
                }
            }
        }
        if (count($tab_data) > 0) {
            $name_img = draw_radar($obj_EAI->get_id_user(), $tab_data); //tableau à plusieurs dimensions pour prévoir la supperposition des années
        }


        $table_comp = $obj_EAI->show_table_competence($tab_year, $type_profil, $tab_node, $tab_manager);

        header('Content-Type: text/plain; charset=iso-8859-1'); // On précise bien qu'il s'agit d'une page en ISO 8859-1

        echo $name_img . "@@@@" . $table_comp;
    }
    //==================================================================================================
    // Lors d'un demande de mise à jour du graphique des évaluations dans les tableaux de bord EAI
    elseif (strcmp($_POST['operation'], "ajax_refresh_graph_evaluation") == 0) {
        $tab_node = array();
        $tab_manager = array();
        $tab_year = array();

        $tab_annee = array();
        $tab_annee2 = array();
        $tab_data = array();
        $tab_data2 = array();

        $name_img = NULL;
        $name_img2 = NULL;

        $inc0 = 0;
        $inc2 = 0;

        $obj_EAI = $_SESSION['eai'];
        $obj_User = $_SESSION['user'];
        $type_profil = (int) lib_check_param_post($_POST['type_profil']);
        if ($type_profil != 3) {
            array_push($tab_manager, $obj_User->get_id_user());
        }

        // ATTENTION donc on ne peut pas avoir plus de 25 noeud ou manager
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['node_eval_' . $type_profil . "_" . $inc]))
                array_push($tab_node, $_POST['node_eval_' . $type_profil . "_" . $inc]);
            if (isset($_POST['manager_eval_' . $type_profil . "_" . $inc]))
                array_push($tab_manager, $_POST['manager_eval_' . $type_profil . "_" . $inc]);
            if (isset($_POST['year_eval_' . $type_profil . "_" . $inc]))
                array_push($tab_year, $_POST['year_eval_' . $type_profil . "_" . $inc]);
        }
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['year_eval_' . $type_profil . "_" . $inc])) {
                $tab_annee = $obj_EAI->get_stat_eval(lib_check_param_post($_POST['year_eval_' . $type_profil . "_" . $inc]), $type_profil, $tab_node, $tab_manager);
                $tab_annee2 = $obj_EAI->get_stat_trend(lib_check_param_post($_POST['year_eval_' . $type_profil . "_" . $inc]), $type_profil, $tab_node, $tab_manager);

                if ($tab_annee != NULL && $tab_annee[0][0] != NULL) {
                    $tab_data[$inc0] = $tab_annee;
                    $inc0++;
                }
                if ($tab_annee2 != NULL && $tab_annee2[0][0] != NULL) {
                    $tab_data2[$inc2] = $tab_annee2;
                    $inc2++;
                }
            }
        }
        if (count($tab_data) > 0) {
            $name_img = draw_bars($obj_EAI->get_id_user(), $tab_data, $LABEL_0174);
        }
        if (count($tab_data2) > 0) {
            $name_img2 = draw_bars($obj_EAI->get_id_user(), $tab_data2, $LABEL_0173);
        }

        $table_eval = $obj_EAI->get_table_trend($tab_year, $type_profil, $tab_node, $tab_manager);

        header('Content-Type: text/plain; charset=iso-8859-1'); // On précise bien qu'il s'agit d'une page en ISO 8859-1
        echo $name_img . "@@@@" . $name_img2 . "@@@@" . $table_eval;
    }
    //==================================================================================================
    // Lors d'un demande de mise à jour du graphique des formations dans les tableaux de bord EAI
    elseif (strcmp($_POST['operation'], "ajax_refresh_graph_training") == 0) {
        $tab_node = array();
        $tab_manager = array();
        $tab_year = array();

        $tab_annee = array();
        $tab_annee2 = array();
        $tab_data = array();
        $tab_data2 = array();

        $name_img = NULL;
        $name_img2 = NULL;

        $inc0 = 0;
        $inc2 = 0;

        $obj_EAI = $_SESSION['eai'];
        $obj_User = $_SESSION['user'];
        $type_profil = (int) lib_check_param_post($_POST['type_profil']);
        if ($type_profil != 3) {
            array_push($tab_manager, $obj_User->get_id_user());
        }

        // ATTENTION donc on ne peut pas avoir plus de 25 noeud ou manager
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['node_training_' . $type_profil . "_" . $inc]))
                array_push($tab_node, $_POST['node_training_' . $type_profil . "_" . $inc]);
            if (isset($_POST['manager_training_' . $type_profil . "_" . $inc]))
                array_push($tab_manager, $_POST['manager_training_' . $type_profil . "_" . $inc]);
            if (isset($_POST['year_training_' . $type_profil . "_" . $inc]))
                array_push($tab_year, $_POST['year_training_' . $type_profil . "_" . $inc]);
        }

        // Contruction de la requete pour récupérer les libellés des formation
        // qui ne prend que les dix première formation en nombre décroissant
        $REQUEST = $REQUEST_217_1;
        $REQUEST.= $obj_EAI->concat_request_table($tab_annee, $tab_node, $tab_manager);
        $REQUEST.= $REQUEST_217_2;
        $data_training_followed = db_request_select($REQUEST, NULL, $obj_EAI->get_db_name());

        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['year_training_' . $type_profil . "_" . $inc])) {
                $tab_annee = $obj_EAI->get_stat_training_followed(lib_check_param_post($_POST['year_training_' . $type_profil . "_" . $inc]), $type_profil, $tab_node, $tab_manager);
                $tab_annee2 = $obj_EAI->get_stat_training_forecasted(lib_check_param_post($_POST['year_training_' . $type_profil . "_" . $inc]), $type_profil, $tab_node, $tab_manager);

                if ($tab_annee != NULL && $tab_annee[0][0] != NULL) {
                    $tab_data[$inc0] = $data_training_followed;
                    // On parse les tableaux qui sont rempli de la même manière pour le série soit harmonisée pour le graphiqe
                    // ainsi même si une formation n'existe pas sur une année elle reste dans le tableau 
                    for ($incI = 0, $stopI = count($tab_annee); $incI < $stopI; $incI++) {
                        for ($incT = 0, $stopT = (count($tab_data[$inc0]) - 1); $incT < $stopT; $incT++) {
                            if (strcmp($tab_annee[$incI][0], $tab_data[$inc0][$incT][0]) == 0) {
                                $tab_data[$inc0][$incT][0] = (string) $tab_annee[$incI][0];
                                $tab_data[$inc0][$incT][1] = (int) $tab_annee[$incI][1];
                                $tab_data[$inc0][$incT][2] = (string) $tab_annee[$incI][2];
                            }
                        }
                    }
                    $inc0++;
                }
                if ($tab_annee2 != NULL && $tab_annee2[0][0] != NULL) {
                    $tab_data2[$inc2] = $tab_annee2;
                    $inc2++;
                }
            }
        }
        if (count($tab_data) > 0) {
            $name_img = draw_bars($obj_EAI->get_id_user(), $tab_data, $LABEL_0195, 1);
        }
        if (count($tab_data2) > 0) {
            $name_img2 = draw_bars($obj_EAI->get_id_user(), $tab_data2, $LABEL_0196, 1);
        }

        $table_eval_1 = $obj_EAI->get_table_training_followed($tab_year, $type_profil, $tab_node, $tab_manager);
        $table_eval_2 = $obj_EAI->get_table_training_forecasted($tab_year, $type_profil, $tab_node, $tab_manager);

        header('Content-Type: text/plain; charset=iso-8859-1'); // On précise bien qu'il s'agit d'une page en ISO 8859-1
        echo $name_img . "@@@@" . $name_img2 . "@@@@" . $table_eval_1 . "@@@@" . $table_eval_2;
    }

    // Lors d'un demande de mise à jour du graphique des tendances dans les tableaux de bord EAI
    elseif (strcmp($_POST['operation'], "ajax_refresh_graph_trend") == 0) {
        /*
          $tab_annee =  array() ;
          $tab_data  =  array() ;
          $name_img = NULL ;
          $inc0 = 0;
          $obj_EAI  = $_SESSION['eai'] ;
          $type_profil = (int)lib_check_param_post($_POST['type_profil']) ;

          for ($inc=0, $stop=25; $inc<$stop; $inc++)
          {
          if(isset($_POST['year_trend_'.$type_profil."_".$inc]))
          {
          $tab_annee = $obj_EAI->get_stat_trend(lib_check_param_post($_POST['year_trend_'.$type_profil."_".$inc]), $type_profil) ;

          if($tab_annee != NULL && $tab_annee[0][0] != NULL)
          {
          $tab_data[$inc0] = $tab_annee ;
          $inc0++;
          }
          }
          }
          if(count($tab_data)>0)
          {
          $name_img = draw_bars($obj_EAI->get_id_user(),$tab_data,$LABEL_0173) ;
          }
          header('Content-Type: text/plain; charset=iso-8859-1'); // On précise bien qu'il s'agit d'une page en ISO 8859-1
          echo $name_img;
         */
    }
    // Lors d'un demande de mise à jour du graphique des objectifs passés dans les tableaux de bord EAI
    elseif (strcmp($_POST['operation'], "ajax_refresh_graph_previous_obj") == 0) {
        $tab_node = array();
        $tab_manager = array();
        $tab_year = array();

        $tab_annee = array();
        $tab_data = array();
        $name_img = NULL;

        $inc0 = 0;
        $obj_EAI = $_SESSION['eai'];

        $obj_User = $_SESSION['user'];
        $type_profil = (int) lib_check_param_post($_POST['type_profil']);
        if ($type_profil != 3) {
            array_push($tab_manager, $obj_User->get_id_user());
        }

        // ATTENTION donc on ne peut pas avoir plus de 25 noeud ou manager
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['node_p_obj_' . $type_profil . "_" . $inc]))
                array_push($tab_node, $_POST['node_p_obj_' . $type_profil . "_" . $inc]);
            if (isset($_POST['manager_p_obj_' . $type_profil . "_" . $inc]))
                array_push($tab_manager, $_POST['manager_p_obj_' . $type_profil . "_" . $inc]);
            if (isset($_POST['year_p_obj_' . $type_profil . "_" . $inc]))
                array_push($tab_year, $_POST['year_p_obj_' . $type_profil . "_" . $inc]);
        }
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['year_p_obj_' . $type_profil . "_" . $inc])) {
                $tab_annee = $obj_EAI->get_stat_previous_objectives(lib_check_param_post($_POST['year_p_obj_' . $type_profil . "_" . $inc]), $type_profil, $tab_node, $tab_manager);

                if ($tab_annee != NULL && $tab_annee[0][0] != NULL) {
                    $tab_data[$inc0] = $tab_annee;
                    $inc0++;
                }
            }
        }
        if (count($tab_data) > 0) {
            $name_img = draw_bars($obj_EAI->get_id_user(), $tab_data, $LABEL_0186);
        }

        $table_p_obj = $obj_EAI->get_table_previous_objectives($tab_year, $type_profil, $tab_node, $tab_manager);

        header('Content-Type: text/plain; charset=iso-8859-1'); // On précise bien qu'il s'agit d'une page en ISO 8859-1
        echo $name_img . "@@@@" . $table_p_obj;
    }
    // Lors d'un demande de mise à jour du graphique des objectifs futurs dans les tableaux de bord EAI
    elseif (strcmp($_POST['operation'], "ajax_refresh_graph_futur_obj") == 0) {
        $tab_node = array();
        $tab_manager = array();
        $tab_year = array();

        $tab_annee = array();
        $tab_data = array();
        $name_img = NULL;
        $inc0 = 0;
        $obj_EAI = $_SESSION['eai'];
        $obj_User = $_SESSION['user'];
        $type_profil = (int) lib_check_param_post($_POST['type_profil']);
        if ($type_profil != 3) {
            array_push($tab_manager, $obj_User->get_id_user());
        }

        // ATTENTION donc on ne peut pas avoir plus de 25 noeud ou manager
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['node_f_obj_' . $type_profil . "_" . $inc]))
                array_push($tab_node, $_POST['node_f_obj_' . $type_profil . "_" . $inc]);
            if (isset($_POST['manager_f_obj_' . $type_profil . "_" . $inc]))
                array_push($tab_manager, $_POST['manager_f_obj_' . $type_profil . "_" . $inc]);
            if (isset($_POST['year_f_obj_' . $type_profil . "_" . $inc]))
                array_push($tab_year, $_POST['year_f_obj_' . $type_profil . "_" . $inc]);
        }
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['year_f_obj_' . $type_profil . "_" . $inc])) {
                $tab_annee = $obj_EAI->get_stat_futur_objectives(lib_check_param_post($_POST['year_f_obj_' . $type_profil . "_" . $inc]), $type_profil, $tab_node, $tab_manager);

                if ($tab_annee != NULL && $tab_annee[0][0] != NULL) {
                    $tab_data[$inc0] = $tab_annee;
                    $inc0++;
                }
            }
        }
        if (count($tab_data) > 0) {
            $name_img = draw_bars($obj_EAI->get_id_user(), $tab_data, $LABEL_0179);
        }
        $table_f_obj = $obj_EAI->get_table_futur_objectives($tab_year, $type_profil, $tab_node, $tab_manager);

        header('Content-Type: text/plain; charset=iso-8859-1'); // On précise bien qu'il s'agit d'une page en ISO 8859-1
        echo $name_img . "@@@@" . $table_f_obj;
    }
    // Lors d'un demande de mise à jour du graphique des objectifs futurs dans les tableaux de bord EAI
    elseif (strcmp($_POST['operation'], "ajax_refresh_graph_satisfaction") == 0) {
        $tab_node = array();
        $tab_manager = array();
        $tab_year = array();

        $name_img = NULL;



        $obj_EAI = $_SESSION['eai'];
        $obj_User = $_SESSION['user'];
        $type_profil = (int) lib_check_param_post($_POST['type_profil']);
        if ($type_profil != 3) {
            array_push($tab_manager, $obj_User->get_id_user());
        }
        $tab_criterion = db_request_select($REQUEST_212, NULL, $obj_EAI->get_db_name());
        $titre1 = "";
        // ATTENTION donc on ne peut pas avoir plus de 25 noeud ou manager
        for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
            if (isset($_POST['node_satisfaction_' . $type_profil . "_" . $inc]))
                array_push($tab_node, $_POST['node_satisfaction_' . $type_profil . "_" . $inc]);
            if (isset($_POST['manager_satisfaction_' . $type_profil . "_" . $inc]))
                array_push($tab_manager, $_POST['manager_satisfaction_' . $type_profil . "_" . $inc]);
            if (isset($_POST['year_satisfaction_' . $type_profil . "_" . $inc]))
                array_push($tab_year, $_POST['year_satisfaction_' . $type_profil . "_" . $inc]);
        }
        for ($inc_0 = 0, $stop_0 = (count($tab_criterion) - 1); $inc_0 < $stop_0; $inc_0++) {
            $grade = NULL;
            $level = NULL;
            $tab_annee = NULL;
            $tab_data = NULL;
            $tab_annee = array();
            $tab_data = array();
            if ($tab_criterion[$inc_0] != NULL && $tab_criterion[$inc_0][0] != NULL) {
                for ($inc = 0, $stop = 25; $inc < $stop; $inc++) {
                    if (isset($_POST['year_satisfaction_' . $type_profil . "_" . $inc])) {
                        $tab_annee = $obj_EAI->get_stat_satisfaction(lib_check_param_post($_POST['year_satisfaction_' . $type_profil . "_" . $inc]), $tab_criterion[$inc_0][0], $type_profil, $tab_node, $tab_manager);

                        if ($tab_annee != NULL && $tab_annee[0][0] != NULL) {
                            array_push($tab_data, $tab_annee);
                            $titre1 = $tab_annee[0][2];
                        }
                    }
                }
                $grade = array(0, 0, 0, 0, 0);
                $level = array("", "", "", "", "");

                for ($inc3 = 0, $stop3 = (count($tab_data)); $inc3 < $stop3; $inc3++) {
                    for ($inc4 = 0, $stop4 = (count($tab_data[$inc3]) - 1); $inc4 < $stop4; $inc4++) {
                        switch ((int) $tab_data[$inc3][$inc4][3]) {
                            case 0:
                                $grade[0]+= $tab_data[$inc3][$inc4][1];
                                $level[0] = $tab_data[$inc3][$inc4][0];
                                break;
                            case 1:
                                $grade[1] += $tab_data[$inc3][$inc4][1];
                                $level[1] = $tab_data[$inc3][$inc4][0];
                                break;
                            case 2:
                                $grade[2] += $tab_data[$inc3][$inc4][1];
                                $level[2] = $tab_data[$inc3][$inc4][0];
                                break;
                            case 3:
                                $grade[3] += $tab_data[$inc3][$inc4][1];
                                $level[3] = $tab_data[$inc3][$inc4][0];
                                break;
                            case 4:
                                $grade[4] += $tab_data[$inc3][$inc4][1];
                                $level[4] = $tab_data[$inc3][$inc4][0];
                                break;
                        }
                    }
                }

                $index = 0;
                $result = NULL;
                for ($inc2 = 0; $inc2 < 5; $inc2++) {
                    if ($grade[$inc2] > 0) {
                        $result[$index][1] = $grade[$inc2];
                        $result[$index][0] = $level[$inc2];
                        $index++;
                    }
                }

                if (count($result) > 0) {
                    $result[$index][1] = 0;
                    $result[$index][0] = "";

                    $name_img.= "@@@@";
                    $name_img.= draw_2D_ring($obj_EAI->get_id_user(), $result, $titre1);
                    $name_img.= "@@@@" . $tab_criterion[$inc_0][0];
                }
            }
        }

        $table_satisfaction = $obj_EAI->get_table_satisfaction($tab_year, $type_profil, $tab_node, $tab_manager);

        header('Content-Type: text/plain; charset=iso-8859-1'); // On précise bien qu'il s'agit d'une page en ISO 8859-1
        echo $table_satisfaction . $name_img;
    }
}
